package com.ruima.study.arithmetic.law;

/**
 * <p>
 * <p>给你一个非负整数数组Ums,你最初位于数组的第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。
 * 判断你是否能够到达最后一个下标，如果可以，返回tue；否则，返回fa1se。</p>
 * <p>
 * <p>Copyright (c) 2024/11/25 9:55, 科大讯飞 All Rights Reserve</p>
 *
 * @author ruima6
 * @version [V1.0]
 */
public class Demo4 {
    public static void main(String[] args) {
        int[] arr = {3, 1, 0, 1, 4};
        Boolean cal = cal(arr, 0);
        System.out.println(cal);
    }

    public static Boolean cal(int[] arr, int curIndex) {
        if (curIndex >= arr.length - 1) {
            return true;
        }
        int stepNum = arr[curIndex];
        if (stepNum == 0) {
            return false;
        } else {
            for (int i = 1; i <= stepNum; i++) {
                Boolean cal = cal(arr, curIndex + i);
                if (cal) {
                    return true;
                }
            }
            return false;
        }
    }
}
